Перейти к основному содержимому

7.04. Справочник по Kibana

Разработчику Архитектору Инженеру

Справочник по Kibana

Kibana — это веб-интерфейс для визуализации, анализа и управления данными, хранящимися в Elasticsearch. Он предоставляет широкий набор инструментов: от интерактивного поиска по сырым документам до создания сложных дашбордов, настройки алертов, геопространственного анализа и работы с машинным обучением. Весь функционал Kibana управляется через конфигурационный файл kibana.yml и встроенные пользовательские интерфейсы.

Конфигурация Kibana (kibana.yml)

Основной способ настройки сервера Kibana — редактирование файла kibana.yml. Расположение файла зависит от способа установки:

  • Архивные дистрибутивы (.tar.gz, .zip): $KIBANA_HOME/config/kibana.yml
  • Пакетные дистрибутивы (Debian, RPM): /etc/kibana/kibana.yml

Все параметры в файле закомментированы по умолчанию. Для активации достаточно раскомментировать строку и указать нужное значение.

Системные настройки сервера Kibana

ПараметрПо умолчаниюОписание
server.port5601Порт, на котором Kibana принимает HTTP-запросы.
server.host"localhost"Адрес привязки сервера. Значение "0.0.0.0" разрешает подключения с любых IP.
server.name"your-hostname"Имя сервера Kibana, отображаемое в логах и интерфейсе.
server.basePath""Базовый путь, если Kibana развернут за reverse proxy (например, /kibana). Не должен оканчиваться на /.
server.rewriteBasePathfalseУказывает Kibana удалять basePath из входящих запросов.
server.publicBaseUrl""Публичный URL, по которому пользователи обращаются к Kibana. Обязателен при использовании basePath.
server.maxPayload1048576 (1 МБ)Максимальный размер тела входящего HTTP-запроса в байтах.
server.excludeRoutesМассив путей, которые блокируются на уровне сервера (например, ["/api/status"]).

Настройки SSL/TLS для Kibana

ПараметрПо умолчаниюОписание
server.ssl.enabledfalseВключает HTTPS для соединений между браузером и Kibana.
server.ssl.certificateПуть к PEM-файлу сертификата сервера.
server.ssl.keyПуть к PEM-файлу приватного ключа сервера.

Подключение к Elasticsearch

ПараметрПо умолчаниюОписание
elasticsearch.hosts["http://localhost:9200"]Массив URL-адресов нод Elasticsearch.
elasticsearch.username"kibana_system"Имя пользователя для внутренних операций Kibana (например, управление .kibana-индексом).
elasticsearch.password"pass"Пароль для указанного пользователя.
elasticsearch.serviceAccountTokenТокен сервисной учётной записи вместо логина/пароля.
elasticsearch.requestTimeout30000 (30 сек)Таймаут ожидания ответа от Elasticsearch в миллисекундах.
elasticsearch.maxSockets1024Максимальное число одновременных сокетов к Elasticsearch.
elasticsearch.compressionfalseВключает сжатие данных при обмене с Elasticsearch.
elasticsearch.shardTimeout30000Таймаут ожидания ответа от шардов Elasticsearch.
elasticsearch.requestHeadersWhitelist[ "authorization" ]Список заголовков, которые Kibana пересылает в Elasticsearch.
elasticsearch.customHeaders{}Статические заголовки, добавляемые ко всем запросам в Elasticsearch.

Настройки SSL/TLS для подключения к Elasticsearch

ПараметрПо умолчаниюОписание
elasticsearch.ssl.certificateСертификат клиента Kibana для mutual TLS.
elasticsearch.ssl.keyПриватный ключ клиента.
elasticsearch.ssl.certificateAuthoritiesПуть к файлу центра сертификации (CA).
elasticsearch.ssl.verificationMode"full"Режим проверки сертификата: "full", "certificate", "none".

Логирование

ПараметрПо умолчаниюОписание
logging.root.level"info"Уровень логирования: "off", "debug", "info", "warn", "error".
logging.appenders.defaultКонфигурация вывода логов в файл (поддержка file, rolling-file, JSON-формат).
logging.loggersНастройка уровней логирования для конкретных компонентов (например, elasticsearch.query, http.server.response).
logging.browser.root.levelУровень логирования в консоли браузера.

Прочие системные параметры

ПараметрПо умолчаниюОписание
path.data"data"Каталог для хранения локальных данных Kibana (не в Elasticsearch).
pid.fileПуть к PID-файлу процесса.
ops.interval5000 (5 сек)Интервал сбора метрик производительности (минимум 100 мс).
i18n.locale"en"Язык интерфейса: "en", "zh-CN", "ja-JP", "fr-FR", "de-DE".

Настройки миграций сохранённых объектов

ПараметрПо умолчаниюОписание
migrations.batchSize1000Количество документов, обрабатываемых за одну итерацию миграции.
migrations.maxBatchSizeBytes"100mb"Максимальный размер пакета при индексации.
migrations.retryAttempts15Число попыток повтора при временных ошибках миграции.

Настройки автозаполнения поиска

ПараметрПо умолчаниюОписание
unifiedSearch.autocomplete.valueSuggestions.timeout1000Таймаут генерации подсказок в миллисекундах.
unifiedSearch.autocomplete.valueSuggestions.terminateAfter100000Максимальное число документов на шард для генерации подсказок.

Основные UI-элементы и функции Kibana

Discover

Интерфейс для интерактивного просмотра и фильтрации сырых документов из Elasticsearch.

Элементы:

  • Панель поиска: полнотекстовый запрос или фильтр по полям.
  • Time filter: выбор временного диапазона (обязательно наличие временного поля).
  • Field list: список доступных полей с возможностью быстрого фильтра.
  • Document view: отображение отдельных документов в формате JSON.
  • Histogram: визуализация распределения событий по времени.

Visualize Library

Библиотека всех созданных визуализаций.

Типы визуализаций:

  • Vertical / Horizontal Bar
  • Line / Area
  • Pie / Donut
  • Goal / Gauge
  • Tag Cloud
  • Heatmap
  • Lens (гибкий drag-and-drop редактор)
  • TSVB (Time Series Visual Builder)
  • Vega (на основе спецификации Vega/Vega-Lite)

Dashboards

Композитные страницы, объединяющие несколько визуализаций и виджетов.

Функции:

  • Глобальные фильтры (применяются ко всем панелям).
  • Time range picker (единый временной диапазон).
  • Full-screen mode.
  • Export в PDF, PNG, CSV.
  • Embedding через iframe.
  • Drill-down по данным (переход в Discover или другую визуализацию).

Alerting

Система мониторинга и оповещения на основе правил.

Типы правил:

  • Threshold alert (превышение порога).
  • Anomaly detection alert.
  • Uptime monitor alert.
  • Custom query alert.

Действия (Actions):

  • Отправка email.
  • Webhook.
  • Slack, PagerDuty, Jira и другие интеграции.
  • Индексация события в Elasticsearch.

Reporting

Генерация отчётов по дашбордам и визуализациям.

Форматы:

  • PDF
  • PNG
  • CSV (для таблиц и Discover)

Режимы:

  • On-demand
  • Scheduled (по расписанию)

Maps

Геопространственный анализ данных.

Возможности:

  • Отображение geo_point и geo_shape.
  • Heatmap, Grid, Clustering.
  • Наложение собственных слоёв (GeoJSON, WMS).
  • Фильтрация по регионам.

Machine Learning

Анализ временных рядов и обнаружение аномалий без написания кода.

Функции:

  • Anomaly detection jobs.
  • Data frame analytics (classification, regression, outlier detection).
  • Model management и переобучение.

Dev Tools

Встроенный REST-клиент для взаимодействия с Elasticsearch.

Компоненты:

  • Console: отправка запросов в формате Query DSL.
  • Search Profiler: анализ производительности запросов.
  • Painless Lab: тестирование скриптов на языке Painless.

Management

Центр администрирования Kibana.

Подразделы:

  • Stack Management: управление индексами, шаблонами, политиками ILM.
  • Spaces: изоляция контента для разных команд.
  • Roles & Users: управление RBAC (в платной версии).
  • Saved Objects: экспорт/импорт дашбордов, визуализаций, поисков.
  • Fleet: управление агентами Elastic Agent и интеграциями.
  • Connectors: настройка внешних сервисов для алертов.

Переменные окружения и подстановки

Kibana поддерживает использование переменных окружения в kibana.yml:

elasticsearch.hosts: ["${ELASTICSEARCH_URL:http://localhost:9200}"]

Синтаксис ${VAR_NAME:default_value} позволяет задать значение по умолчанию, если переменная не установлена.